package br.ufpe.cin.rgms.base.imagem.controller;

import java.io.File;

import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.Validator;
import br.com.caelum.vraptor.interceptor.multipart.UploadedFile;
import br.com.caelum.vraptor.validator.ValidationMessage;
import br.ufpe.cin.rgms.base.imagem.component.Imagens;
import br.ufpe.cin.rgms.base.membro.controller.MembroController;
import br.ufpe.cin.rgms.base.membro.model.Membro;

@Resource
public class ImagensController {

	private Validator validator;
	private Imagens imagens;
	private Result result;

	public ImagensController(Validator validator, Imagens imagens, Result result) {
		this.validator = validator;
		this.imagens = imagens;
		this.result = result;
	}

	public void upload(Membro membro, final UploadedFile imagem) {

		if (imagem == null) {
			validator.add(new ValidationMessage("imagem", "imagem.nula"));
		}

		validator.onErrorRedirectTo(MembroController.class).detalhe(
				membro.getId());

		imagens.salva(imagem, membro);
		result.redirectTo(MembroController.class).detalhe(membro.getId());
	}

	public File download(Membro membro) {
		return imagens.mostra(membro);
	}
}
